#ifndef MIREGISTROFIJO_H_
#define MIREGISTROFIJO_H_

#include "../includes.h"

class MiRegistroFijo: public Objeto {

private:
	int miIntID;
	char miCharID;
	int miInt;

public:
	MiRegistroFijo(const Bytes& regSerializado) {
		hidratarse(regSerializado);
	}

	MiRegistroFijo(int miIntID, char miCharID, int miInt){
		this->miIntID = miIntID;
		this->miCharID = miCharID;
		this->miInt = miInt;
	}
	virtual ~MiRegistroFijo(){};
	int getMiIntID(){
		return miIntID;
	}
	char getMiCharID(){
		return miCharID;
	}
	int getMiInt(){
		return miInt;
	}

	virtual Bytes serializarse() {
		Bytes serializacion;
		serializacion.agregarAlFinal(&miIntID,sizeof(int));
		serializacion.agregarAlFinal(&miCharID,sizeof(char));
		serializacion.agregarAlFinal(&miInt,sizeof(int));
		return serializacion;
	}

	virtual bool hidratarse(const Bytes& serializacion) {
		offset offset = 0;
		serializacion.leer(&miIntID,offset,sizeof(int));
		offset += sizeof(int);
		serializacion.leer(&miCharID,offset,sizeof(char));
		offset += sizeof(char);
		serializacion.leer(&miInt,offset,sizeof(int));
		return true;
	}

};

#endif /* MIREGISTROFIJO_H_ */
